import request from '@/utils/request'

/**
 * 批量生成额度卡
 * @param {Object} data - 生成参数
 * @param {Number} data.amount - 面额
 * @param {Number} data.quantity - 生成数量
 * @param {Number} data.expireDays - 有效期天数
 * @param {String} data.batchNo - 批次号（可选）
 */
export function batchGenerateCards(data) {
  return request({
    url: '/welfare-cards/admin/batch-generate',
    method: 'post',
    params: data
  })
}

/**
 * 分页查询额度卡列表
 * @param {Object} params - 查询参数
 * @param {Number} params.current - 页码
 * @param {Number} params.size - 每页数量
 * @param {Number} params.status - 状态筛选
 * @param {Number} params.userId - 用户ID筛选
 * @param {String} params.batchNo - 批次号筛选
 */
export function getCardsList(params) {
  return request({
    url: '/welfare-cards/admin',
    method: 'get',
    params
  })
}

/**
 * 根据批次号查询未发放的卡
 * @param {String} batchNo - 批次号
 */
export function getUnissuedCardsByBatch(batchNo) {
  return request({
    url: `/welfare-cards/admin/batch/${batchNo}`,
    method: 'get'
  })
}

/**
 * 批量发放额度卡
 * @param {Array} cardIds - 卡片ID列表
 * @param {Number} userId - 用户ID
 */
export function batchIssueCards(data) {
  return request({
    url: '/welfare-cards/admin/batch-issue',
    method: 'post',
    data
  })
}

/**
 * 多选员工批量发放额度卡
 * @param {Object} data - 发放参数
 * @param {Array} data.userIds - 用户ID列表
 * @param {Number} data.cardAmount - 面额
 * @param {Number} data.cardCount - 每人发放张数
 */
export function batchIssueToUsers(data) {
  return request({
    url: '/welfare-cards/admin/batch-issue-users',
    method: 'post',
    data
  })
}

/**
 * Excel导入并发放额度卡
 * @param {File} file - Excel文件
 */
export function importIssueCards(file) {
  const formData = new FormData()
  formData.append('file', file)
  return request({
    url: '/welfare-cards/admin/import-issue',
    method: 'post',
    data: formData,
    headers: {
      'Content-Type': 'multipart/form-data'
    }
  })
}

/**
 * 兑换额度卡
 * @param {Object} data - 兑换参数
 * @param {String} data.cardNumber - 卡号
 * @param {String} data.cardPassword - 密码
 */
export function exchangeCard(data) {
  return request({
    url: '/welfare-cards/exchange',
    method: 'post',
    data
  })
}

/**
 * 获取我的额度卡列表
 * @param {Object} params - 查询参数
 * @param {Number} params.status - 状态筛选
 */
export function getMyCards(params = {}) {
  return request({
    url: '/welfare-cards/my-cards',
    method: 'get',
    params
  })
}

/**
 * 获取我的额度卡详情（包含完整卡号密码）
 * @param {Number} status - 状态筛选
 */
export function getMyCardsDetail(status) {
  return request({
    url: '/welfare-cards/my-cards-detail',
    method: 'get',
    params: { status }
  })
}

/**
 * 验证额度卡
 * @param {Object} data - 验证参数
 * @param {String} data.cardNumber - 卡号
 * @param {String} data.cardPassword - 密码
 */
export function verifyCard(data) {
  return request({
    url: '/welfare-cards/validate',
    method: 'post',
    data
  })
}

/**
 * 获取即将过期的额度卡列表
 * @param {Number} days - 天数（默认30天）
 */
export function getCardsExpiringSoon(days = 30) {
  return request({
    url: '/welfare-cards/admin/expiring-soon',
    method: 'get',
    params: { days }
  })
}

/**
 * 下载Excel模板
 */
export function downloadTemplate() {
  return request({
    url: '/welfare-cards/admin/download-template',
    method: 'get',
    responseType: 'blob'
  })
}

